package com.ruoyi.contribute.service.impl;

import java.util.List;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.constant.ContributeStatue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.contribute.mapper.ContributeMapper;
import com.ruoyi.contribute.domain.Contribute;
import com.ruoyi.contribute.service.IContributeService;

/**
 * 用户投稿Service业务层处理
 *
 * @author duanxinli
 * @date 2023-11-09
 */
@Service
public class ContributeServiceImpl implements IContributeService {
    @Autowired
    private ContributeMapper contributeMapper;

    /**
     * 查询用户投稿
     *
     * @param id 用户投稿主键
     * @return 用户投稿
     */
    @Override
    public Contribute selectContributeById(String id) {
        return contributeMapper.selectContributeById(id);
    }

    /**
     * 查询用户投稿列表
     *
     * @param contribute 用户投稿
     * @return 用户投稿
     */
    @Override
    public List<Contribute> selectContributeList(Contribute contribute) {
        return contributeMapper.selectContributeList(contribute);
    }

    /**
     * 新增用户投稿
     *
     * @param contribute 用户投稿
     * @return 结果
     */
    @Override
    public int insertContribute(Contribute contribute) {
        contribute.setId(IdUtils.fastUUID());
        contribute.setCreateDate(DateUtils.getNowDate());
        String username = SecurityUtils.getUsername();
        contribute.setCreateBy(username);
        contribute.setStatue(ContributeStatue.Checking.getValue());
        return contributeMapper.insertContribute(contribute);
    }

    /**
     * 修改用户投稿
     *
     * @param contribute 用户投稿
     * @return 结果
     */
    @Override
    public int updateContribute(Contribute contribute) {
        contribute.setUpdateDate(DateUtils.getNowDate());
        String username = SecurityUtils.getUsername();
        contribute.setUpdateBy(username);
        return contributeMapper.updateContribute(contribute);
    }

    /**
     * 批量删除用户投稿
     *
     * @param ids 需要删除的用户投稿主键
     * @return 结果
     */
    @Override
    public int deleteContributeByIds(String[] ids) {
        return contributeMapper.deleteContributeByIds(ids);
    }

    /**
     * 删除用户投稿信息
     *
     * @param id 用户投稿主键
     * @return 结果
     */
    @Override
    public int deleteContributeById(String id) {
        return contributeMapper.deleteContributeById(id);
    }
}
